#define _CRT_SECURE_NO_WARNINGS


//模拟实现strncpy
//#include <stdio.h>
//#include <assert.h>
//char* my_strncpy(char* dest, char* src, size_t num)
//{
//	assert(dest != NULL);
//	assert(src != NULL);
//	char* ret = dest;
//	while (num--)
//	{
//		if(*src != '\0')
//		{ 
//			*dest++ = *src++;
//		}
//		else
//		{
//			*dest++ = '\0';
//			break;
//		}
//	}
//	return ret;
//}
//
//int main()
//{
//	char arr1[] = "abcdef";
//	char arr2[20] = { 0 };
//	my_strncpy(arr2, arr1, 4);
//	printf("%s\n", arr2);
//	return 0;
//}

//模拟实现strncat

#include <stdio.h>
#include <assert.h>

char* my_strcat(char* dest, const char* str, size_t num)
{
	assert(dest && str);
	char* ret = dest;
	while (*dest)
	{
		dest++;
	}
	while (num--)
	{
		*dest++ = *str++;
	}
	*dest = '\0';
	return ret;
}

int main()
{
	char arr1[20] = "hello ";
	char arr2[] = "world";
	my_strcat(arr1, arr2, 3);
	printf("%s\n", arr1);
	return 0;
}